  10 :RETURN ;FOR Z=1TO 26;@(Z)=0;NEXT Z
  20 CLEAR ;NT=0;BC=RND (32)×8;FC=BC
  30 PRINT 
  40 PRINT "1-UPDATE
  50 PRINT "2-DECODE
  60 PRINT "3-ENCODE
  70 PRINT "4-RANDOM CODE
  75 PRINT "5-LOAD MESSAGE
  77 PRINT "6-REPEAT
  78 PRINT "7-PRINT CODE
  79 PRINT "8-CODE BREAKER
  80 FC=BC+4+RND (32)×8;FOR Z=1TO 500
  90 IF &(23)=8GOTO 1000
 100 IF &(22)=8GOTO 2000
 110 IF &(21)=8GOTO 3000
 120 IF &(23)=4GOTO 4000
 125 IF &(22)=4GOTO 5000
 127 IF &(21)=4GOTO 6000
 128 IF &(23)=2GOTO 7000
 129 IF &(22)=2GOTO 8000
 130 NEXT Z;BC=0;FC=0
 140 IF KPGOTO 20
1000 PRINT "CODE LETTER? ",;C=KP;TV=C;PRINT 
1010 IF C="RETURN "GOTO 20
1020 PRINT "LETTER? ",;B=KP;TV=B;PRINT 
1030 @(C-64)=B;GOTO 1000
2000 CLEAR ;FOR Z=27TO A
2030 FOR M=1TO 26
2040 IF @(Z)-64=M TV=@(M);GOTO 2050
2045 NEXT M;TV=@(Z)
2050 NEXT Z;PRINT 
2060 GOTO 80
3000 CLEAR ;FOR Z=27TO A
3030 FOR Y=1TO 26
3040 IF @(Z)=@(Y)TV=Y+64;GOTO 3060
3050 NEXT Y;TV=@(Z)
3060 NEXT Z;PRINT 
3070 GOTO 80
4000 CLEAR ;PRINT "COMPUTING!
4007 FOR Z=1TO 26
4008 IF @(Z)#0IF @(Z)#63GOTO 4050
4010 M=RND (26)+64
4020 FOR Y=1TO 26
4030 IF @(Y)=MGOTO 4010
4040 NEXT Y;@(Z)=M
4050 NEXT Z;GOTO 20
5000 A=27;CLEAR 
5010 @(A)=KP;IF @(A)=31TV=31;A=A-1;GOTO 5010
5020 IF @(A)="RETURN "A=A-1;GOTO 20
5030 TV=@(A)
5040 A=A+1
5050 GOTO 5010
6000 CLEAR ;FOR Z=27TO A;TV=@(Z);NEXT Z
6010 PRINT ;GOTO 80
7000 FOR Z=1TO 26;TV=Z+64;NEXT Z
7010 FOR Z=1TO 26;TV=@(Z);NEXT Z;PRINT 
7020 GOTO 80
8000 CLEAR ;PRINT "COMPUTING!
8010 GOSUB 8500;@(F-64)=69
8015 GOSUB 9000
8020 GOSUB 8500;@(F-64)=84
8025 GOSUB 9000
8030 GOSUB 8500;@(F-64)=78
8035 GOSUB 9000
8040 GOSUB 8500;@(F-64)=73
8045 GOSUB 9000
8050 GOSUB 8500;@(F-64)=79
8055 GOSUB 9000
8060 GOSUB 8500;@(F-64)=65
8065 GOSUB 9000
8070 FOR Z=1TO 1000;NEXT Z;GOTO 2000
8500 D=0;E=0;FOR Z=27TO A;IF @(Z)>64IF @(Z)<91GOTO 8700
8510 NEXT Z;RETURN 
8700 C=@(Z);IF @(C-64)#0GOTO 8510
8710 FOR Y=ZTO A;IF @(Y)=C D=D+1
8720 NEXT Y;IF D>E E=D;F=C
8730 D=0;GOTO 8510
9000 TV=F;PRINT "=",;TV=@(F-64);PRINT ;RETURN 
RUN 
